package cn.tedu.reflection;


import org.junit.Test;

import java.lang.reflect.Constructor;
import java.util.Arrays;

/**
 * @author :Colin
 * @version 创建时间: 2021/6/24 16:39
 */
public class TestReflect {
    //创建程序的入口函数main（）--不用
    /*单元测试方法：是java测试的最小单位，使用灵活，推荐指数五颗星
     * 语法要求：@Test + void +没有参数的 +public 公共的
     * 注意：使用时需要导包：ADD JUnit4 to classPath
     * import org.junit.Test*/
    //通过单元测试方法获取类的字节码对象
    @Test
    public void getClazz()throws Exception{
        Class<?> student1=Class.forName("cn.tedu.reflection.Student");//不能用\\，写成包名.类名，最后不要写class
        Class<?> student2=Student.class;
        Class<?> student3=new Student().getClass();
        System.out.println(student1);
        System.out.println(student1.getName());





    }
    @Test
    public void getConstruct(){
        Class<?> clazz =Student.class;
        Constructor<?>[] cs = clazz.getConstructors();
        System.out.println(Arrays.toString(cs));
        for(Constructor c:cs){
            System.out.println(c.getName());
            Class<?>[] cp = c.getParameterTypes();
            System.out.println(Arrays.toString(cp));

        }



    }
}

